package com.zmn.plat.common.dto.product.item;

import lombok.Data;
import lombok.ToString;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;

/**
 * @author tanghongjun
 * @version v1.0
 * @类说明：服务项（故障或基础）Dubbo返回实体
 * @since 2020年3月30日15:50:07
 */
@Data
@ToString
public class ItemPriceDRO implements Serializable {
    private static final long serialVersionUID = 5273425320444124514L;
    /**
     * 项目ID
     */
    private Integer itemId;

    /**
     * 单价，同入参
     */
    private Integer price;

    /**
     * 数量，同入参
     */
    private Integer number;

    /**
     * 总价：非一口价、一口价不区分明细、一口价区分明细但是是明细1的 返回price*number,满足阶梯价的返回阶梯价（不满足阶梯价计算条件的返回null，如没配置阶梯值等数据问题）
     * 规则：
     * 1.销售价=材料费*数量+工艺费总计
     * 2.数量<数量阶梯值时，工艺费总计 =   工艺费*数量
     * 3.数量>=数量阶梯值时，工艺费总计 =   工艺费*（1-数量/数量阶梯值*阶梯降幅）*数量
     * （数量/数量阶梯值的计算结果向下取整；当阶梯价<底折价格时，取底折价格;四舍五入，取整）
     */
    private Integer totalPrice;

    /**
     * 材料费总价
     */
    private Integer totalMaterialPrice;

    /**
     * 工艺费总价
     */
    private Integer totalArtPrice;

    /**
    * 描述：阶梯价格计算过程可能存在的分支，用于排查问题，调用方不用关注
    */
    private String fianlMessage;

}